package com.sun.sentinel.feign;

import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * feign服务熔断降级（推荐）
 * 说明：调用第三方服务导致的熔断降级处理
 */
@Slf4j
@Component
public class HelloFeignClientFallbackFactory implements FallbackFactory<HelloFeignClient> {

    /**
     * 配置流控规则：GET:http://nacos-service/hi/{name}
     * 注意规则不是 /hi/{name}
     */
    @Override
    public HelloFeignClient create(Throwable cause) {
        return new HelloFeignClient() {
            @Override
            public String sayHi(String name) {
                log.error("调用发生异常或降级", cause);
                return "hello error";
            }
        };
    }

}
